www.gusucode.com > Matlab在化学工程中的应用 > Matlab在化学工程中的应用/实用化工计算机模拟-Matlab在化学工程中的应用/Examples/Chapter 3/PipeDiameter.m
function PipeDiameter % 估算非牛顿型流体流动所需的管道直径 % % Author: HUANG Huajiang % Copyright 2003 UNILAB Research Center, % East China University of Science and Technology, Shanghai, PRC % $Revision: 1.0 $ $Date: 2003/05/30 $ clear all clc % 一水平管道内幂定律流体的流动 rho = 961; G = 6.67; L = 10; eps = 5e-6; deltaP = 15e3; k = 1.8; n = 0.64; K = 1.48; n1 = n; K1 = K*((3*n+1)/(4*n))^n; D1 = (32*K1*L*8^(n1-1)*(4*G/pi/rho)^n1)^(1/(3*n1+1)); D2 = 2*D1; delta = 1e-4; while abs((D2 - D1)/D2) > delta u = (G/rho)/(pi*D1^2/4); Regen = D1^n1*u^(2-n1)*rho/(8^(n1-1)*K1); if Regen <= 2100 if k == 0 break else f = 16/Regen; end end if Regen > 2100 f = FrictFactor(Regen,n1); end Le = k*D1/(4*f); D1 = D2; D2 = (2*f*(L+Le)/(rho*deltaP)*(4*G/pi)^2)^0.2; end fprintf('\t管道直径为D = %.4f %s\n',D2,'m') fprintf('\t摩擦因子为f = %.4f %s',f,'m') % ------------------------------------------------------------------ function f = FrictFactor(Regen,n1) f0 = 16/Regen; %4.53 f = fzero(@fFunc,f0,[],Regen,n1) % ------------------------------------------------------------------ function F = fFunc(f) F = 1/sqrt(f) - 4.0*log(Regen*f^(1-n1/2))/n1^0.75 + 0.4/n1^1.2;%4.54